使用Gson将数据保存到JSON文件 | 您所在的位置:网站首页 › gson 数组转json › 使用Gson将数据保存到JSON文件 |
1.概述 Gson是一个Java库,允许我们将Java对象转换为JSON表示形式。我们还可以反过来使用它,将JSON字符串转换为等效的Java对象。 在本快速教程中,我们将找到如何将各种Java数据类型作为JSON保存在文件中。 2. Maven依赖 首先,我们需要在pom.xml中添加Gson依赖项。这在Maven Central中可用: 12345 com.google.code.gson gson 2.8.53.将数据保存到JSON文件 我们将使用Gson类中的toJson(Object src,Appendable writer)方法将Java数据类型转换为JSON并将其存储在文件中。 Gson()构造函数使用默认配置创建一个Gson对象: 1Gson gson = new Gson();现在,我们可以调用toJson()来转换和存储Java对象。 让我们探索一些Java中具有不同数据类型的示例。 3.1。原语 使用GSON将原语保存到JSON文件非常简单: 1gson.toJson(123.45, new FileWriter(filePath));在此,filePath表示文件的位置。文件输出将仅包含原始值: 1123.453.2。自定义对象 同样,我们可以将对象存储为JSON。 首先,我们将创建一个简单的User类: 123456789101112131415public class User { private int id; private String name; private transient String nationality; public User(int id, String name, String nationality) { this.id = id; this.name = name; this.nationality = nationality; } public User(int id, String name) { this(id, name, null); } }现在,我们将User对象存储为JSON: 12User user = new User(1,"Tom Smith","American"); gson.toJson(user, new FileWriter(filePath));文件输出将是: 1{"id":1,"name":"Tom"}如果将字段标记为瞬态,则默认情况下将忽略该字段,并且不将其包含在JSON序列化或反序列化中。结果,JSON输出中不存在国籍字段。 同样,默认情况下,Gson在序列化过程中会忽略空字段。因此,如果我们考虑以下示例: 1gson.toJson(new User(1, null,"Unknown"), new FileWriter(filePath));文件输出将是: 1{"id":1}稍后我们将看到如何在序列化中包括空字段。 3.3。馆藏 我们可以用类似的方式存储对象的集合: 12User[] users = new User[] { new User(1,"Mike"), new User(2,"Tom") }; gson.toJson(users, new FileWriter(filePath));在这种情况下,文件输出将是一个User对象数组: 1[{"id":1,"name":"Mike"},{"id":2,"name":"Tom"}]4.使用GsonBuilder 为了调整默认的Gson配置设置,我们可以利用GsonBuilder类。 此类遵循构建器模式,通常通过首先调用各种配置方法来设置所需的选项,最后调用create()方法来使用该类: 123Gson gson = new GsonBuilder() .setPrettyPrinting() .create();在这里,我们将设置漂亮的打印选项,默认情况下将其设置为false。同样,要在序列化中包含空值,我们可以调用erialializeNulls()。可用选项在此处列出。 5.结论 在这篇快速文章中,我们了解了如何将各种Java数据类型序列化为JSON文件。要浏览有关JSON的各种文章,请参阅本主题的其他教程。 与往常一样,该代码段在此GitHub存储库中可用。 |
CopyRight 2018-2019 实验室设备网 版权所有 |